/******************************************************************************* 
  Copyright (C), 1988-2020, zeno Tech. Co., Ltd.
  Description:  HID模块
  Function List:   
*******************************************************************************/
#ifndef HID_H 
#define HID_H 

#ifdef __cplusplus
extern "C" {
#endif

/*=============================================================================
                                 Includes                                  
==============================================================================*/


/*=============================================================================
                               Macro Definition
==============================================================================*/

                        
/*=============================================================================
                        Local Structures and Typedef 
==============================================================================*/
typedef struct
{
    char *pBuf;                 /* 帧数据缓存 */
    unsigned int dataLen;       /* 帧数据长度 */
    int reserved[14];
} HID_audioPacket_t;

typedef struct
{
    char *pResult;
    int resultNum;
} HID_corrResult_t;

/* hid初始化参数 */
typedef struct
{
    int (*enableZoom)(int enable);
    int (*getZoom)(void);
    int (*getBodyCount)(void);
    int (*audioStart)(int chn);
    int (*audioStop)(int chn);
    int (*audioGet)(int chn, HID_audioPacket_t *pPacket);
    int (*audioRelease)(int chn);
    int (*enableUac)(int state);
    int (*enableAudioIn)(int enable);
    int (*getAudioIn)(void);
    int (*corrStart)(int vpt);
    int (*corrStop)(HID_corrResult_t *pResult);
    int (*setSpeakerTrack)(int mode);
    int (*getSpeakerTrack)(void);
    int (*enableMirror)(int enable);
    int (*getMirror)(void);
    int (*setZoomTime)(int times);
    int (*getZoomTime)(void);
    int (*setSplitCnt)(int cnt);
    int (*getSplitCnt)(void);
    int (*getMcuVer)(char *pVer);
    int (*setOsdMirror)(int enable);
    int (*getOsdMirror)(void);
	int (*enableFlip)(int enable);
    int (*getFlip)(void);
    int (*enablePrivacy)(int enable);
    int (*getPrivacy)(void);
    int (*setPtz)(int pan, int tilt, int zoom);
    int (*getPtz)(int *pan, int *tilt, int *zoom);
    int (*getWifiSignalStatus)(void);
    int (*startWifi)(void);
    int (*getWifiStatus)(void);
    int (*kvmTest)();
    int (*setDhcp)(int enable);
    int (*matchingLed)(void);
    int (*matchedLed)(void);
    int (*getStaMode)(int *mode);
    int (*setStaMode)(int mode);
    int reserved[3];
} HID_initParam_t;

/*=============================================================================
                             extern  Variables                                  
==============================================================================*/


/*=============================================================================
                             Function Definition                                  
==============================================================================*/ 

/*******************************************************************************
  Function:     HID_Init
  Description:  HID模块初始化
  Input:        - pInitParam: 初始化参数
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/ 
int HID_Init(HID_initParam_t *pInitParam);


/*******************************************************************************
  Function:     HID_DeInit
  Description:  HID模块注销
  Input:        无
  Output:       无
  Return:       0: 操作成功
                ~0: 操作失败
  Others:       无
*******************************************************************************/ 
int HID_DeInit(void);

#ifdef __cplusplus
}
#endif
#endif // HID_H

